
//
// 130226 - AH - Created.
//

package org.japril.gim;

/**
 * <p>
 *   Represents a relationship between two
 *   {@link Item}.
 * </p>
 * @author Arne Halvorsen (AH)
 */
public interface ItemItem 
{
  /**
   * <p>
   *   Gets id that identifies 'left' 
   *   {@link Item} object of the relation.
   * </p>
   * @return Id.
   */
  int getLeftId();
  
  /**
   * <p>
   *   Gets name on role 'left' 
   *   {@link Item} object has to 'right'
   *   {@code Item} object in relation.
   * </p>
   * @return Type name or {@code null} if not assigned.
   */
  String getLeftRole();
  
  /**
   * <p>
   *   Gets key that identifies 'right' 
   *   {@link Item} object of the relation.
   * </p>
   * @return id.
   */
  int getRightId();
  
  /**
   * <p>
   *   Gets name on role 'right' 
   *   {@link Item} object has to 'left'
   *   {@code Item} object in relation.
   * </p>
   * @return Type name or {@code null} if not assigned.
   */
  String getRightRole();
  
}
